---
title: DSSA（特定领域软件架构）
description: DSSA 的基本概念、流程与应用
date: 2025-06-01
sidebar_position: 4
---
## 概念
- DSSA 就是 <RedSpan>专用于一类特定类型的任务（领域）的</RedSpan>、在整个领域中能有效地使用的、为成功构造应用系统限定了标准的组合结构的 <RedSpan>软件构件的集合</RedSpan>。
- DSSA 就是一个 <RedSpan>特定的问题领域</RedSpan>中支持一组应用的领域模型、参考需求、参考架构等组成的开发基础架构，其目标就是 <RedSpan>支持在一个特定领域中多个应用的生成</RedSpan>。
## 分类
- 垂直域：<RedSpan>在一个特定领域中通用的软件架构，是一个完整的架构</RedSpan>
- 水平域：<RedSpan>在多个不同的特定领域之间的有相同的部分的小工具</RedSpan>（如购物和教育都有收费系统，收费系统即是水平域）

## DSSA 的三个基本活动
这里的分析是针对某个应用领域进行分析，提炼出通用的模型
### 领域分析
这个阶段的主要目标是 <RedSpan>获得领域模型（领域需求）</RedSpan>。<RedSpan>识别信息源</RedSpan>，即整个领域工程过程中信息的来源，可能的信息源包括现存系统、技术文献、问题域和系统开发的专家、用户调查和市场分析、领域演化的历史记录等，<RedSpan>在此基础上就可以分析领域中系统的需求</RedSpan>，确定 <RedSpan>那些需求是领域中的系统广泛共享的，从而建立领域模型。</RedSpan>
### 领域设计
这个阶段的<RedSpan>目标是获得DSSA</RedSpan>。DSSA 描述<RedSpan>在领域模型中表示的需求的解决方案</RedSpan>,它不是单个系统的表示，而是能够 <RedSpan>适应领域中多个系统的需求的一个高层次的设计</RedSpan>。建立了领域模型之后，就可以派生出满足这些被建模的领域需求 DSSA。

### 领域设计
这个阶段的主要目标是依据领域模型和 DSSA<RedSpan>开发和组织可重用信息</RedSpan>。这些可重用信息可能是从现有系统中提取得到，也可能需要通过新的开发得到。


## DSSA 的四种角色人员
### 领域专家
包括 <RedSpan>该领域中系统的有经验的用户、从事该领域中的系统的需求分析、设计、实现以及项目管理的有经验的软件工程师等。</RedSpan>提供关于领域中系统的需求规约和实现的知识，帮助组织规范的、一致的领域字典，帮助选择样本系统作为领域工程的依据，复审领域模型、DSSA 等领域工程产品，等等。



主要分为两类，一类是懂技术的人，另一类是懂业务的人
### 领域分析人员
由具有 <RedSpan>具有知识工程背景的有经验的系统分析员来担任</RedSpan>。控制整个领域分析过程，进行知识提取，将获取到的知识组织到领域模型中。
### 领域设计人员
由 <RedSpan>有经验的软件设计人员来担任</RedSpan>。根据领域模型和现有系统开发出 DSSA，并对 DSSA 的准确性和一致性进行验证。
### 领域实现人员
由 <RedSpan>有经验的程序设计人员来担任</RedSpan>。根据领域模型和 DSSA，开发出构件。

## 建立 DSSA 的过程

这里是从开发的角度描述，区别于三个活动（生命周期）

### 定义领域范围
领域中的应用要满足用户一系列需求
### 定义领域特定的元素
建立领域的字段，归纳领域中的术语，识别出领域中相同和不相同的元素。

### 定于领域特定的设计和实现需求的约束
识别领域中的所有约束，这些约束对领域的设计和实现会造成什么后果。
### 定义领域模型和架构
产生一般的架构，并描述其构件说明。
### 产生、搜集可复用的产品单元
为 DSSA 增加复用构件，使其可用于新的系统。

以上过程是并发的、递归的、反复的、螺旋型的。

## 三层次模型
### <RedSpan>领域开发环境</RedSpan>
领域架构师决定核心架构，<RedSpan>产出参考结构、参考需求、架构、领域模型、开发工具。</RedSpan>
### <RedSpan>领域特定的应用开发环境</RedSpan>
应用工程师根据具体环境来将核心架构实例化。
### <RedSpan>应用执行环境</RedSpan>
操作员实现实例化后的架构。


![](https://wkq-img.oss-cn-chengdu.aliyuncs.com/20250525165151.png)
